/*
 * Copyright (C) 2013  Richard Schilling. All rights reserved.
 * contact: coderroadie@gmail.com
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

package android.net.quic.transport;

import android.net.quic.enumerations.InFecGroup;
import android.net.quic.enumerations.QuicGuidLength;
import android.net.quic.enumerations.QuicSequenceNumberLength;

public class QuicProtocol {

    /**
     * Version and Crypto tags are written to the wire with a big-endian
     * representation of the name of the tag. For example the client hello tag
     * (CHLO) will be written as the following 4 bytes: 'C' 'H' 'L' 'O'. Since
     * it is stored in memory as a little endian uint32, we need to reverse the
     * order of the bytes. MakeQuicTag returns a value given the four bytes. For
     * example: MakeQuicTag('C', 'H', 'L', 'O');
     */
    QuicTag MakeQuicTag(char a, char b, char c, char d) {
        throw new UnsupportedOperationException("not implemented yet");
    }

    /**
     * Size in bytes of the data or fec packet header.
     */
    int GetPacketHeaderSize(QuicPacketHeader header) {
        throw new UnsupportedOperationException("not implemented yet");
    }

    /**
     * Size in bytes of the data or fec packet header.
     */
    int GetPacketHeaderSize(
            QuicGuidLength guid_length,
            boolean include_version,
            QuicSequenceNumberLength sequence_number_length,
            InFecGroup is_in_fec_group) {
        throw new UnsupportedOperationException("not implemented yet");
    }

    /**
     * Size in bytes of the public reset packet.
     */
    int GetPublicResetPacketSize() {
        throw new UnsupportedOperationException("not implemented yet");
    }

    /**
     * Index of the first byte in a QUIC packet of FEC protected data.
     */
    int GetStartOfFecProtectedData(
            QuicGuidLength guid_length,
            boolean include_version,
            QuicSequenceNumberLength sequence_number_length) {
        throw new UnsupportedOperationException("not implemented yet");
    }

    /**
     * Index of the first byte in a QUIC packet of encrypted data.
     */
    int GetStartOfEncryptedData(
            QuicGuidLength guid_length,
            boolean include_version,
            QuicSequenceNumberLength sequence_number_length) {
        throw new UnsupportedOperationException("not implemented yet");
    }
}
